- mar. 16 janvier 2018
- Téléchargement
- Michel GRIMALDI
- #exemples, #c++
S'il est une qualité que doit avoir un programmeur, c'est bien celle de savoir réutiliser ses propres programmes ou des programmes mis à disposition sur internet pour développer rapidement et sûrement ses nouvelles applications.
Dans l'absolu, nous ne devrions jamais réécrire du code que l'on a déjà écrit.
Ceci passe par le suivi de quelques règles de bon sens:
-
la documentation systématique de vos codes (commentaires généreux et explicites)
-
l'archivage systématique de vos programmes sur un site, un cloud ou autre, pour pouvoir les récupérer facilement.
-
d'utiliser un logiciel de gestion de version pour retrouver rapidement le bon programme.
Ces quelques exemples d'applications sous Qt me servent personellement à chaque fois que j'ai besoin de mettre en oeuvre une des fonctionalités qu'ils utilisent.
J'ai donc décidé de les mettre à la disposition de la communauté.
Eléments de base
- le jeu du nombre mystérieux consiste à deviner un nombre secret, choisi par l'ordinateur. A chaque tentative, le programme vous informe si votre réponse est plus petite ou plus grande que le nombre secret. Ce petit programme sans prétention permet d’appréhender les concepts de base de la programmation sous Qt. Il montre comment utiliser les composants visuels de base (boutons, lineEdit, prgresseBar, .etc.)
- comment utiliser un timer pour qu'une action de votre choix s'exécute automatiquement à des intervalles de temps réguliers; bien utile pour faire des animations.
- le jeu du bandit manchot un jeu amusant mettant en œuvre nottament un timer. Il a été un sujet de DS dans le passé, peut être sera t'il recyclé un jour!
- comment dessiner sur l'interface et utiliser la souris: Qt permet de dessiner des figures de base (lines, cercles, images, .etc.) directement sur l'interface de votre application. Pour cela, il faut mettre en œuvre certaines fonctionnalités telles qu'un événement de dessin (paintEvent), un painter, .etc.
- récupérer la position de la souris pour dessiner quelque chose à cet endroit par exemple, ou autre.
- afficher une image présente dans un fichier sur votre machine peut être utile. En modifiant sa position dans une boucle ou au moyen d'un timer, on peut même faire une animation "amusante".
Eléments avancés
- sauvegarder les paramètres d'un programme, un chemin du disque, un nom, un mot de passe, .etc., que l'on voudrait que l'ordinateur retienne et pouvoir les récupérer à chaque fois que l'on relance le programme. Ceci est possible dans Qt grace aux settings.
- une application qui fait plusieurs choses à la fois, application multithread en anglais permet de lancer plusieurs traitements concurrents (qui s'exécutent en même temps).
- Ajuster l'interface à la taille de la fenêtre, en utilisant un GridLayout attaché à la fenêtre.
Applications réseau
- votre machine en serveur TCP. Après avoir choisi le port TCP d'écoute, votre machine devient accessible sur le réseau local. Les applications en réseau enfin disponibles, très simplement.
- votre machine en client TCP. Après avoir choisi une adresse IP et un port, votre machine se connecte au serveur TCP correspondant. Dans cet exemple, vous pouvez envoyer des données au serveur et visualiser la réponse de ce dernier. La ligne "quit" permet de se déconnecter.
- charger et afficher une page WEB directement à partir de votre programme. Ceci peut par exemple permettre de récupérer des informations directement sur un site Web.
- charger et afficher une image du WEB directement à partir de votre programme. Dans cet exemple, nous récupérerons l'image délivrée par la webcam de la ville de Toulon (la tour royale).
- votre application envoie des emails automatiquement. Dans cet exemple vous pouvez spécifier le serveur SMTP (en mode ssl éventuellement) et envoyer des emails avec pièces jointes.
Carte et fichiers sons
- accéder directement à la carte son pour "jouer" des échantillons en temps réel. Dans cet exemple, nous émettons un son pur (une sinusoïde).
- créer et écrire un fichier Wave multivoies 16 bits contenant des échantillons quelconques. La fréquence d'échantillonnage, le nombre de voies, et la profondeur des données peuvent être modifiés.
- jouer des sons contenus dans des fichiers (wav, mp3, .etc) à partir de l'interface le programme crée autant de MediaPlayer qu'il y a de sons à jouer, ce qui permet de les jouer de façon concurente.
- jouer des sons sur un tempo avec interface spécifique le programme permet de choisir les sons que l'on veut utiliser. Regardez, vous comprendrez tout de suite...
Liaison série
- envoyer/recevoir des données par la liaison série. Cet application montre comment paramétrer la liaison (port, vitesse, parité, .etc.) puis envoyer et recevoir des données. Pour l'exemple nous avons utilisé un joystick série.
Caméra
- prendre une photo avec la caméra (webcam). Vous pouvez accéder aux caméras internes ou usb connectées à votre machine directement avec Qt.
- un mini traitement d'image temps réel. Cet exemple montre comment prendre des images régulièrement, puis d'accéder aux pixels, le tout avec une représentation graphique de plusieurs images sur l'interface.
QCustomPlot
La bibliothèque qcustomplot permet de visualiser, très simplement, des données sous la forme de courbes ou de graphiques divers et variés. (consultez le site pour plus de détails).
QWT
La bibliothèque QWT permet de mettre en œuvre des composants de haut niveau, courbe, boussole, compteur, .etc. Pour utiliser ces exemples, il faut préalablement installer qwt sur la machine. + un horizon artificiel, comme dans les avions, pour matérialiser des positions (tangage et assiette) + une boussole, qui nous sera bien utile dans les applications Android. + des belles courbes pour représenter toutes nos données, incluant les axes, les légendes, .etc. + les figures de Lissajou que les électroniciens connaissent bien. + un compteur de vitesse pour reproduire le tableau de bord de votre voiture de rêve da + un chronograme pour représenter des données binaires. L'exemple montre la possibilité de cliquer sur le légende pour faire une action, ici, afficher la courbe.
MQTT le protocole de l'internet des objets
- un client MQTT qui montre toutes les fonctionnalités du protocole.
Divers
- un clavier numérique virtuel, particulièrement utile avec les écrans tactiles. Le clavier peut être attaché à un ou plusieurs QLineEdit.
- un clavier azerty virtuel simplifié, avec partie numérique.